ti: k3: common: Remove MSMC port definitions
authorAndrew F. Davis <[email protected]>
Wed, 27 Mar 2019 14:37:10 +0000 (09:37 -0500)
committerAndrew F. Davis <[email protected]>
Tue, 30 Apr 2019 13:41:06 +0000 (09:41 -0400)
The MSMC port defines were added to help in the case when some ports
are not connected and have no cores attached. We can get the same
functionality by defined the number of cores on that port to zero.
This simplifies several code paths, do this here.

Signed-off-by: Andrew F. Davis <[email protected]>
Change-Id: I3247fe37af7b86c3227e647b4f617fab70c8ee8a

plat/ti/k3/board/generic/include/board_def.h
plat/ti/k3/common/k3_helpers.S
plat/ti/k3/common/k3_topology.c
plat/ti/k3/include/platform_def.h

index 4c8f88220442805b432c8c4fce4e1c1ebe10e553..490b975f4b69a824fb977f25407990588717cc7b 100644 (file)
 
 /* The ports must be in order and contiguous */
 #define K3_CLUSTER0_CORE_COUNT         2
-#define K3_CLUSTER0_MSMC_PORT          0
-
 #define K3_CLUSTER1_CORE_COUNT         2
-#define K3_CLUSTER1_MSMC_PORT          1
-
 #define K3_CLUSTER2_CORE_COUNT         2
-#define K3_CLUSTER2_MSMC_PORT          2
-
 #define K3_CLUSTER3_CORE_COUNT         2
-#define K3_CLUSTER3_MSMC_PORT          3
 
 /*
  * This RAM will be used for the bootloader including code, bss, and stacks.
index 3dfdda4bd8eae96fd30b3dec1e302ec7d0e6c6a1..1ab1af54c549d36d6b125fd39405f4ed0d1666ff 100644 (file)
@@ -73,21 +73,17 @@ func plat_my_core_pos
        lsr     x1, x1, #MPIDR_AFF1_SHIFT
        and     x0, x0, #MPIDR_CPU_MASK
 
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
-       cmp     x1, #K3_CLUSTER0_MSMC_PORT
+       cmp     x1, 0
        b.eq out
        add     x0, x0, #K3_CLUSTER0_CORE_COUNT
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
-       cmp     x1, #K3_CLUSTER1_MSMC_PORT
+
+       cmp     x1, 1
        b.eq out
        add     x0, x0, #K3_CLUSTER1_CORE_COUNT
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
-       cmp     x1, #K3_CLUSTER2_MSMC_PORT
+
+       cmp     x1, 2
        b.eq out
        add     x0, x0, #K3_CLUSTER2_CORE_COUNT
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
 
 out:
        ret
index 2b98acb278b5867d22664ad6686164a29063a276..139f1fdb1bc90ea9cb38a37c72f33fbdc67dc465 100644 (file)
@@ -13,15 +13,9 @@ static unsigned char power_domain_tree_desc[] = {
        PLATFORM_SYSTEM_COUNT,
        PLATFORM_CLUSTER_COUNT,
        K3_CLUSTER0_CORE_COUNT,
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
        K3_CLUSTER1_CORE_COUNT,
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
        K3_CLUSTER2_CORE_COUNT,
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
        K3_CLUSTER3_CORE_COUNT,
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
 };
 
 const unsigned char *plat_get_power_domain_tree_desc(void)
@@ -31,42 +25,22 @@ const unsigned char *plat_get_power_domain_tree_desc(void)
 
 int plat_core_pos_by_mpidr(u_register_t mpidr)
 {
-       unsigned int cpu_id;
+       unsigned int cluster = MPIDR_AFFLVL1_VAL(mpidr);
+       unsigned int core = MPIDR_AFFLVL0_VAL(mpidr);
 
-       mpidr &= MPIDR_AFFINITY_MASK;
-
-       if (mpidr & ~(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK))
+       if (MPIDR_AFFLVL3_VAL(mpidr) > 0 ||
+           MPIDR_AFFLVL2_VAL(mpidr) > 0) {
                return -1;
+       }
 
-       cpu_id = MPIDR_AFFLVL0_VAL(mpidr);
-
-       switch (MPIDR_AFFLVL1_VAL(mpidr)) {
-       case K3_CLUSTER0_MSMC_PORT:
-               if (cpu_id < K3_CLUSTER0_CORE_COUNT)
-                       return cpu_id;
-               return -1;
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
-       case K3_CLUSTER1_MSMC_PORT:
-               if (cpu_id < K3_CLUSTER1_CORE_COUNT)
-                       return K3_CLUSTER0_CORE_COUNT + cpu_id;
-               return -1;
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
-       case K3_CLUSTER2_MSMC_PORT:
-               if (cpu_id < K3_CLUSTER2_CORE_COUNT)
-                       return K3_CLUSTER0_CORE_COUNT +
-                              K3_CLUSTER1_CORE_COUNT + cpu_id;
+       if (cluster > 0)
+               core += K3_CLUSTER0_CORE_COUNT;
+       if (cluster > 1)
+               core += K3_CLUSTER1_CORE_COUNT;
+       if (cluster > 2)
+               core += K3_CLUSTER2_CORE_COUNT;
+       if (cluster > 3)
                return -1;
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
-       case K3_CLUSTER3_MSMC_PORT:
-               if (cpu_id < K3_CLUSTER3_CORE_COUNT)
-                       return K3_CLUSTER0_CORE_COUNT +
-                              K3_CLUSTER1_CORE_COUNT +
-                              K3_CLUSTER2_CORE_COUNT + cpu_id;
-               return -1;
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
-       default:
-               return -1;
-       }
+
+       return core;
 }
index 68fdae745695c270314ce275be7a018fd0e24395..690c68e5cf1c6c7ae33d1c266773a32dae0fde50 100644 (file)
                                        K3_CLUSTER2_CORE_COUNT + \
                                        K3_CLUSTER3_CORE_COUNT)
 
-#define PLATFORM_CLUSTER_COUNT         ((K3_CLUSTER0_MSMC_PORT != UNUSED) + \
-                                       (K3_CLUSTER1_MSMC_PORT != UNUSED) + \
-                                       (K3_CLUSTER2_MSMC_PORT != UNUSED) + \
-                                       (K3_CLUSTER3_MSMC_PORT != UNUSED))
-
-#define UNUSED                         -1
-
-#if !defined(K3_CLUSTER1_CORE_COUNT) || !defined(K3_CLUSTER1_MSMC_PORT)
-#define K3_CLUSTER1_CORE_COUNT         0
-#define K3_CLUSTER1_MSMC_PORT          UNUSED
-#endif
-
-#if !defined(K3_CLUSTER2_CORE_COUNT) || !defined(K3_CLUSTER2_MSMC_PORT)
-#define K3_CLUSTER2_CORE_COUNT         0
-#define K3_CLUSTER2_MSMC_PORT          UNUSED
-#endif
-
-#if !defined(K3_CLUSTER3_CORE_COUNT) || !defined(K3_CLUSTER3_MSMC_PORT)
-#define K3_CLUSTER3_CORE_COUNT         0
-#define K3_CLUSTER3_MSMC_PORT          UNUSED
-#endif
-
-#if K3_CLUSTER0_MSMC_PORT == UNUSED
-#error "ARM cluster 0 must be used"
-#endif
-
-#if ((K3_CLUSTER1_MSMC_PORT == UNUSED) && (K3_CLUSTER1_CORE_COUNT != 0)) || \
-    ((K3_CLUSTER2_MSMC_PORT == UNUSED) && (K3_CLUSTER2_CORE_COUNT != 0)) || \
-    ((K3_CLUSTER3_MSMC_PORT == UNUSED) && (K3_CLUSTER3_CORE_COUNT != 0))
-#error "Unused ports must have 0 ARM cores"
-#endif
-
-#define PLATFORM_CLUSTER_OFFSET                K3_CLUSTER0_MSMC_PORT
+#define PLATFORM_CLUSTER_COUNT         ((K3_CLUSTER0_CORE_COUNT != 0) + \
+                                       (K3_CLUSTER1_CORE_COUNT != 0) + \
+                                       (K3_CLUSTER2_CORE_COUNT != 0) + \
+                                       (K3_CLUSTER3_CORE_COUNT != 0))
 
 #define PLAT_NUM_PWR_DOMAINS           (PLATFORM_SYSTEM_COUNT + \
                                        PLATFORM_CLUSTER_COUNT + \